package com.train.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.train.common.resp.CommonResp;
import com.train.common.resp.PageResp;
import com.train.system.resp.train.TrainCodeResp;
import com.train.system.resp.train.TrainDetailResp;
import com.train.system.resp.train.TrainListResp;
import com.train.system.resp.train.TrainPageResp;
import com.train.system.dto.seat.TrainGenerateSeatDTO;
import com.train.system.dto.train.TrainAddOrEditDTO;
import com.train.system.dto.train.TrainCodeDTO;
import com.train.system.dto.train.TrainPageDTO;
import com.train.system.po.TrainPO;

import java.util.List;

/**
 * @author baitiaojun
 * @description 针对表【train(车次)】的数据库操作Service
 * @createDate 2025-02-20 01:04:22
 */
public interface TrainService extends IService<TrainPO> {

    void addOrEditTrain(TrainAddOrEditDTO trainAddOrEditDTO);

    PageResp<TrainPageResp> pageList(TrainPageDTO trainPageDTO);

    void remove(Long id);

    PageResp<TrainCodeResp> pageCodeList(TrainCodeDTO trainCodeDTO);

    void generateTrainSeat(TrainGenerateSeatDTO trainGenerateSeatDTO);

    TrainDetailResp getTrainDetail(String trainCode);

    List<TrainPageResp> getTrainList(TrainPageDTO trainPageDTO);

    void validTrainCode(String trainCode);

    List<TrainListResp> getTrainListByTrainCodes(List<String> trainCodes);
}
